package com.todo.strategy.online.iface;

import com.todo.common.common.entity.response.BizResponse;
import com.todo.strategy.online.iface.request.*;
import com.todo.strategy.online.iface.response.PlanRelationDetailVO;
import com.todo.strategy.online.iface.response.SamplePlanSetVO;

/**
 * @author azhebuxing
 * @date 2024/5/9 19:52
 * @description
 */
public interface PlanRelationFrontendIface {

    /**
     * 插入清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> insertPlanRelation(InsertPlanRelationParam param);

    /**
     * 复制保存清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> duplicatePlanRelation(DuplicatePlanRelationParam param);

    /**
     * 复制保存清单计划清单
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> duplicatePlanSet(DuplicatePlanSetParam param);

    /**
     * 更新清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> updatePlanRelation(UpdatePlanRelationParam param);

    /**
     * 删除清单计划关联详情
     *
     * @param param
     * @return
     */
    BizResponse<Boolean> removePlanRelation(RemovePlanRelationParam param);

    /**
     * 构造示例计划清单信息
     * 路线基础安排比如  Day1 ItemA->ItemB->ItemC  Day2 ItemA->ItemB->ItemC
     *
     * @param param
     * @return
     */
    BizResponse<SamplePlanSetVO> buildSamplePlanSetInfo(SamplePlanSetInfoParam param);


    /**
     * 根据清单计划查询详情列表
     *
     * @param param
     * @return
     */
    BizResponse<PlanRelationDetailVO> queryPlanRelationByPlanId(QueryPlanRelationByPlanIdParam param);


}
